package leetcode.code0027;

public class Solution extends Solution27 {

	@Override
	public int removeElement(int[] nums, int val) {
		int l = 0;//最左侧开始
		int r = nums.length - 1;//最右侧开始
		while (l <= r) {
			if (nums[l] != val) {//找到一个等于val的位置
				l++;//如果等就向后走一位
			} else {
				while (l <= r) {//找到第一个等于val的位置后,右侧开始,找到第一个不等于val的位置
					if (nums[r] == val) {//如果相等
						r--;//向左找
					} else {
						//int temp = nums[l];无视
						nums[l] = nums[r];//把不等于val的数字,放到等于val的数字上
						// nums[r] = temp;无视
						r--;//右侧用过了,向左移动一位
						l++;//左侧填上了,向右移动
						break;
					}
				}
			}
		}
		return l;
	}

	public static void main(String[] args) {
		Solution so = new Solution();
		so.debug1();
		so.debug2();
	}

}
